# -*- coding: utf-8 -*-
#from main.modelService import PythonBaseService
#from main import log
from model_service.python_model_service import XgSklServingBaseService
from model_service import log
import json
import pandas as pd
from pandas import to_datetime
import numpy as np
import collections
import os
logger = log.getLogger(__name__)

class user_Service(XgSklServingBaseService):

   def _preprocess(self, data):
       logger.info("begin to pre process")
       json_data = json.loads(data, object_pairs_hook=collections.OrderedDict)
       # days = json_data["req_data"][0].split(",")
       days=['2019-2-11','2019-2-14']
       # root=self.model_path
       # print(root)
       # root='/'.join(root.split('/')[:-1])
       # print(root)
       # for i in os.listdir(root):
       #     print(i)
       # my_data=pd.read_csv(root+'/chongzhi_beier-south-01-13.csv')
       # print(my_data)
       # logger.info("json_data['req_data'] :{}".format(json_data))

       df = pd.DataFrame(columns = ["weekday", "timeindex"])
       # generate X_test time between 5:00-20:55 in requested days
       for day in days:
           timestamp = to_datetime(day, format="%Y-%m-%d")
           df1 = pd.DataFrame({"weekday":(timestamp.dayofweek/6.0), "timeindex":(np.arange(300, 1256, 5))/(24 * 60.0)})
           df = df.append(df1, ignore_index=True)
       logger.info("end to pre process")
       return df

   def _postprocess(self, result_data):
       logger.info("begin to post process")
       schema = json.loads('{"wuhe_zhangheng":[1,2,3]}')
       result_data=[13.571428571428571, 16.571428571428573, 15.0, 16.285714285714285, 15.285714285714286, 18.571428571428573, 21.428571428571427, 22.714285714285715, 19.428571428571427, 20.571428571428573, 22.142857142857142, 23.142857142857142, 27.428571428571427, 29.285714285714285, 28.857142857142858, 26.857142857142858, 34.285714285714285, 34.42857142857143, 43.142857142857146, 41.142857142857146, 47.857142857142854, 49.0, 42.285714285714285, 56.142857142857146, 68.42857142857143, 64.85714285714286, 68.57142857142857, 79.42857142857143, 93.71428571428571, 112.0, 122.57142857142857, 136.14285714285714, 167.57142857142858, 190.0, 207.57142857142858, 231.0, 238.28571428571428, 251.0, 239.0, 250.71428571428572, 256.14285714285717, 232.0, 222.71428571428572, 228.0, 197.14285714285714, 180.28571428571428, 173.14285714285714, 129.0, 126.42857142857143, 125.85714285714286, 123.57142857142857, 123.42857142857143, 109.71428571428571, 108.14285714285714, 107.42857142857143, 107.14285714285714, 97.28571428571429, 105.57142857142857, 104.57142857142857, 102.14285714285714, 97.14285714285714, 98.45714285714286, 100.25714285714285, 95.85714285714286, 93.77142857142857, 93.08571428571429, 94.91428571428571, 95.0, 95.05714285714286, 91.85714285714285, 83.91201647616678, 90.81427692481519, 98.9286183414426, 97.89471916090656, 92.39246092636364, 95.65841104540505, 95.43201665486941, 98.33918587422573, 98.34454428614902, 103.10140138112884, 95.81139024760087, 107.8812886156153, 100.45806966671158, 100.3695915738234, 100.74868482600895, 98.04593601075176, 99.74804839029544, 100.78736386237775, 98.2116039328763, 96.02975496854519, 92.84207322195284, 90.93449590052303, 89.9705420909104, 82.0060731759613, 85.17250353220425, 87.13357117729892, 85.19953050100821, 89.62233214900147, 89.65512503890511, 88.0087656438897, 91.02464440467092, 95.07490626964209, 96.58260383646926, 96.26705572624796, 96.76919037966736, 106.44466444281052, 102.1269662019153, 100.65200531041937, 101.63658957308105, 112.03556321170869, 104.06440458114282, 101.78050612508987, 102.11459612858916, 107.56493679091513, 106.20369702881806, 100.54888427235983, 106.48839510528774, 96.0662266333082, 104.31122705777547, 101.2393457041436, 109.64226941745194, 99.30256221576911, 94.22450047503315, 102.49000729598033, 102.99330922581942, 102.6404978499296, 98.7305128074831, 98.3110171560466, 104.63772527069825, 110.77126960156664, 98.75574664088175, 102.90615334184581, 109.74285246321988, 102.4294254828153, 101.52592854798439, 103.1848957955682, 99.73013649671509, 107.31302973049264, 107.96532941681257, 109.64933416650767, 96.57142857142857, 98.14285714285714, 98.42857142857143, 100.42857142857143, 103.14285714285714, 109.85714285714286, 117.0, 114.14285714285714, 110.71428571428571, 112.85714285714286, 148.0, 170.57142857142858, 196.14285714285714, 209.57142857142858, 166.0, 167.85714285714286, 193.57142857142858, 193.14285714285714, 200.14285714285714, 197.0, 200.14285714285714, 172.85714285714286, 177.42857142857142, 165.14285714285714, 152.14285714285714, 149.28571428571428, 142.28571428571428, 137.42857142857142, 133.14285714285714, 127.85714285714286, 119.0, 107.42857142857143, 106.28571428571429, 112.85714285714286, 108.0, 111.57142857142857, 117.14285714285714, 105.42857142857143, 92.85714285714286, 103.0, 96.0, 96.14285714285714, 114.14285714285714, 91.85714285714286, 93.28571428571429, 94.71428571428571, 94.71428571428571, 105.14285714285714, 122.71428571428571, 119.71428571428571, 115.42857142857143, 121.57142857142857, 14.3, 20.533333333333335, 19.433333333333337, 25.666666666666668, 17.96666666666667, 20.900000000000002, 22.0, 28.6, 23.833333333333336, 24.933333333333337, 27.500000000000004, 29.333333333333336, 33.36666666666667, 41.06666666666667, 42.53333333333333, 33.733333333333334, 47.300000000000004, 41.43333333333334, 45.833333333333336, 50.6, 77.73333333333335, 80.66666666666667, 67.46666666666667, 82.13333333333334, 99.36666666666667, 87.26666666666667, 85.43333333333335, 103.03333333333335, 149.9666666666667, 155.4666666666667, 170.5, 183.33333333333334, 198.66666666666666, 209.33333333333334, 227.33333333333334, 243.66666666666666, 263.3333333333333, 281.0, 278.0, 277.6666666666667, 278.0, 259.6666666666667, 242.0, 268.0, 235.33333333333334, 215.0, 187.33333333333334, 183.33333333333334, 178.5666666666667, 165.73333333333335, 176.0, 177.83333333333334, 141.9, 151.0666666666667, 172.70000000000002, 138.60000000000002, 136.4, 154.73333333333335, 141.53333333333333, 142.22666666666666, 146.77333333333334, 152.20000000000002, 145.30666666666667, 132.91333333333333, 131.2266666666667, 133.35333333333335, 133.94000000000003, 136.43333333333334, 143.84, 127.34, 124.70000000000002, 130.71333333333334, 134.01333333333335, 132.18, 122.50000000000001, 116.34, 124.84666666666666, 126.46000000000001, 137.53333333333336, 137.38666666666668, 116.41333333333336, 116.63333333333334, 117.07333333333334, 120.22666666666667, 126.16666666666667, 125.58000000000001, 129.76000000000002, 117.29333333333335, 112.67333333333335, 105.85333333333334, 95.14666666666668, 106.44000000000001, 119.49333333333335, 109.59333333333335, 107.39333333333335, 113.26, 113.11333333333334, 124.77333333333334, 125.65333333333334, 123.74666666666667, 116.34000000000002, 116.41333333333334, 127.04666666666667, 129.76000000000002, 131.15333333333334, 134.9666666666667, 132.91333333333336, 131.66666666666669, 131.08, 126.46000000000001, 133.42666666666668, 135.99333333333334, 126.90000000000002, 123.60000000000001, 124.33333333333336, 129.39333333333335, 127.48666666666668, 130.78666666666666, 136.65333333333334, 127.63333333333335, 132.69333333333333, 125.72666666666667, 122.94000000000001, 125.21333333333335, 122.06000000000002, 117.07333333333335, 123.01333333333335, 134.23333333333335, 142.52, 126.02000000000001, 122.64666666666668, 132.62, 136.06666666666666, 130.42000000000002, 144.64666666666668, 142.4466666666667, 131.2266666666667, 136.58, 152.05333333333334, 143.03333333333333, 133.79333333333335, 139.58666666666667, 137.16666666666669, 133.10000000000002, 140.06666666666666, 136.4, 153.26666666666668, 147.76666666666668, 138.96666666666667, 138.23333333333335, 151.0666666666667, 202.03333333333333, 210.10000000000002, 224.03333333333333, 200.93333333333334, 194.70000000000002, 202.03333333333333, 201.3, 218.53333333333333, 216.70000000000002, 214.50000000000003, 198.73333333333335, 211.5666666666667, 196.9, 202.76666666666668, 203.13333333333333, 187.73333333333335, 182.60000000000002, 165.3666666666667, 161.70000000000002, 144.4666666666667, 151.8, 152.9, 170.13333333333333, 148.8666666666667, 152.16666666666669, 161.70000000000002, 142.63333333333333, 150.70000000000002, 148.8666666666667, 116.60000000000001, 124.66666666666667, 164.26666666666668, 119.9, 149.23333333333335, 137.13333333333335, 142.63333333333333, 153.63333333333333, 166.10000000000002, 161.33333333333334, 166.83333333333334, 140.06666666666666]
       schema["wuhe_zhangheng"] = result_data
       logger.info("end to post process")
       return json.dumps(schema)